/*******************************************************************************
  * 文件：JumpFuction.c
  * 作者：zyz
  * 版本：v1.0.0
  * 日期：2017-08-03
  * 说明：跳转功能
*******************************************************************************/
/* 头文件 *********************************************************************/
#include "JumpFunction.h"
#include "r_cg_macrodriver.h"

/* 宏定义 *********************************************************************/
/* 类型定义 *******************************************************************/
/* 变量定义 *******************************************************************/
/* 函数声明 *******************************************************************/
/* 函数定义 *******************************************************************/

/*******************************************************************************
  * 函数名：JumpToBootloader
  * 功  能：跳转到Bootloader
  * 参  数：无
  * 返回值：无
  * 说  明：无
*******************************************************************************/
void JumpToBootloader(void)
{
    InterruptRoutine_tpf pfStartupRoutine;
    ImageHeader_ts *psBootloaderHeader;

    // 关闭中断
    EI();

    // 获取引导程序头信息
    psBootloaderHeader = (ImageHeader_ts *)u32BOOTLOADER_HEADER_ADDRESS;

    // 获取启动函数
    pfStartupRoutine = (InterruptRoutine_tpf)psBootloaderHeader->u32StartupAddress;

    // 执行启动函数
    if(pfStartupRoutine != (InterruptRoutine_tpf)NULL)
    {
    	pfStartupRoutine();
    }
}

/***************************** 文件结束 ***************************************/
